48 research outputs found

    Efficient Region-Based Memory Management for Resource-limited Real-Time Embedded Systems.

    Get PDF
    This paper presents a simple and eïŹƒcient static analysis algorithm, combined with a region allocation policy for real-time embedded Java applications. The goal of this work is to provide a static analysis mechanism eïŹƒcient enough to be integrated in an assisted-development environment, and to implement region-based memory management primitives suited for resource-limited platforms such as smart cards

    Exploiting Java Code Interactions

    Get PDF
    Many Java technologies allow the execution of code provided by multiple parties. Service-oriented platforms based on components such as OSGi are good examples of such a scenario. Those extensible component-based platforms are service-oriented, as components may directly interact with each other via the services they provide. However, even robust languages such as Java were not designed to handle safely code interaction between trusted and untrusted parties. In this technical report, we review how basic Java interactions can break encapsulation or execution safety. The Java security layers contribution is questionable in such environments as they induce tangible overheads without covering all threats. We also review flaws in the Java access control design that can allow untrusted code to bypass restrictions by exploiting vulnerabilities in trusted code. Our audit on real-life trusted bundles from OSGi implementations shows that real-life components do not seem prepared yet to malicious interactions.De multiples technologies Java permettent l'exĂ©cution de code fourni par diffĂ©rentes parties dans un mĂȘme environnement. Les plateformes orientĂ©es service comme OSGi en sont un exemple. Ces plateformes gĂšrent des composants diffĂ©rents qui n'interagissent entre eux que par les points d'entrĂ©es publics que sont les services. MĂȘme si Java est robuste par nature, il n'a pas Ă©tĂ© conçu pour gĂ©rer de telles interactions dans le cas oĂč certaines parties sont malveillantes. Dans ce rapport technique, nous exposons comment les mĂ©chanismes basiques de Java peuvent mettre en danger l'encapsulation et la suretĂ© d'exĂ©cution. Nous expliquons aussi pourquoi les couches de sĂ©curitĂ© additionelles ne paraissent pas adaptĂ©es Ă  ces environnements Ă  composants et ne garantissent pas une couverture de sĂ©curitĂ© optimale. Nous exposons Ă©galement les problĂšmes du contrĂŽle d'accĂšs basĂ© sur la pile d'appel et comment il peut permettre Ă  du code malveillant de contourner les restrictions en s'appuyant sur du code de confiance. Enfin, notre audit de diffĂ©rents composants du monde rĂ©el montre que les plateformes Ă  composants ne sont pas prĂ©parĂ©es Ă  la prĂ©sence de code malveillant

    Hardware Resource Control in L4 micro-kernels

    Get PDF
    International audienceIn traditionnal operating systems, application programs are granted direct access to APIs provided by hardware device drivers. This architecture is likely to yield a poor quality of service, or is even vulnerable to denial-of-service attacks on the device itself. For instance, a malicious process issuing lots of disk requests targetting nearby blocks could prevent other processes from getting any access to their data. The micro-kernel architecture, on the other hand, provides strong isolation between components, as all communication goes through IPC. The objective of our work is to leverage this communication layer in order to transparently intercept all requests before they reach the actual drivers. This would enable the system to monitor how much pressure each program puts on each resource, in order to balance, filter, or reschedule these requests. This would make it impossible for malicious programs to abuse hardware resources, while requiring no change in the code of the driver nor in the application.Dans les systĂšmes d'exploitation classiques, les processus utilisateurs ont un accĂšs direct aux mĂ©thodes des pilotes de pĂ©riphĂ©riques matĂ©riels. Cet accĂšs direct peut ĂȘtre exploitĂ© afin de forcer un dĂ©ni de service sur le pĂ©riphĂ©rique concernĂ© ou diminuer fortement la qualitĂ© du service fourni. Par exemple, un processus malveillant demandant des accĂšs intensifs au disque sur des blocs trĂšs proches empĂȘchera d'autres processus d'accĂ©der Ă  cette ressource. L'isolation forte inhĂ©rente aux micro-noyaux canalise les communications entre processus via IPC. L'objectif de notre travail est de profiter de cette couche de communication pour intercepter les appels aux pĂ©riphĂ©riques et permettre un contrĂŽle d'admission ou un rĂ©ordonnancement des demandes aux pĂ©riphĂ©riques. Ceci pourrait empĂȘcher des processus malveillants de forcer un dĂ©ni de service sur un composant matĂ©riel via l'inaccessibilitĂ© du pilote correspondant, en forçant un partage Ă©quitable du temps d'accĂšs au pilote

    Swap Fairness for Thrashing Mitigation

    Get PDF
    International audienceThe swap mechanis mallows an operating system to work with more memory than available RAM space, by temporarily flushing some data to disk. However, the system sometimes ends up spending more time swapping data in and out of disk than performing actual computation. This state is called thrashing. Classical strategies against thrashing rely on reducing system load, so as to decrease memory pressure and increase global throughput. Those approaches may however be counterproductive when tricked into advantaging malicious or long-standing processes. This is particularily true in the context of shared hosting or virtualization, where multiple users run uncoordinated and selfish workloads. To address this challenge, we propose an accounting layer that forces swap fairness among processes competing for main memory. It ensures that a process cannot monopolize the swap subsystem by delaying the swap operations of abusive processes, reducing the number of system-wide page faults while maximizing memory utilization

    Incremental checkpointing of program state to NVRAM for transiently-powered systems

    Get PDF
    International audienceAs technology improves, it becomes possible to design autonomous, energy-harvesting networked embedded systems, a key building block for the Internet of Things. However, running from harvested energy means frequent and unpredictable power failures. Programming such Transiently Powered Computers will remain an arduous task for the software developer, unless some OS support abstracts energy management away from application design. Various approaches were proposed to address this problem. We focus on checkpointing, i.e. saving and restoring program state to and from non-volatile memory. In this paper, we propose an incremental checkpointing scheme which aims at minimizing the amount of data written to non-volatile memory, while keeping the execution overhead as low as possible

    Accurate Power Consumption Evaluation forPeripherals in Ultra Low-Power embedded systems

    Get PDF
    International audienceWe propose a methodology to measure, model and simulate power consumption of peripheral devices of a lowpower embedded micro-controller, while keeping a reasonable development cost. This methodology is experimented against the low-power MSP-EXP430FR5739 platform that includes nonvolatile RAM for intermittent computing purposes and a handful of peripherals. The experimental measurements enable the characterization of the consumption of the peripherals, while many existing comparable studies do not provide power consumption for peripherals. These measurements are integrated into a simulator that targets low-power peripheral-intensive applications, as are most of IoT embedded programs. The accuracy of the power consumption estimation is within a 5% error on intermittent embedded computing using peripherals

    Adaptive GPS Duty Cycling and Radio Ranging for Energy-efficient Localization

    Get PDF
    International audienceThis paper addresses the tradeoff between energy consumption and localization performance in a mobile sensor network application. It focuses on fusing GPS loca- tion with more energy-efficient location sensors to bound position estimate uncertainty in order to prolong node lifetime. We consider an animal monitoring application and use empirical GPS and radio contact data from a large-scale deployment to model animal mobility, GPS and radio performance. These models are used to explore duty cycling strategies for maintaining position uncertainty within specified bounds. We then explore the benefits of using short-range radio contact logging alongside GPS as an energy-inexpensive means of lowering uncertainty while the GPS is off. Results show that GPS combined with radio-contact logging is effective in extending node lifetime while meeting application- specific positioning criteria

    Entropy transfers in the Linux Random Number Generator

    Get PDF
    One of the services provided by the operating system to the applications is random number generation. For security reasons, the Linux Random Number Generator is built upon the combination of a deterministic algorithm known as the cryptographic post-processing and an unpredictable physical phenomenon called an Entropy Source. While the various cryptographic post-processing algorithms and their properties are well described in the literature, the entropy collection process itself is little studied. This report first presents the different approaches to random number generation, and then details the architecture of the Linux Random Number Generator. Then, we present the experiments we performed to monitor entropy transfers. Our results show that the main source of randomness in the system is the behavior of the hard drive, and that most random numbers produced by the generator are actually consumed by the kernel itself.La gĂ©nĂ©ration de nombres alĂ©atoires est l'un des services offerts par le systĂšme d'exploitation aux applications qu'il exĂ©cute. Pour des raisons de sĂ©curitĂ©, le gĂ©nĂ©rateur de Linux est construit autour de la combinaison d'un traitement cryptographique dĂ©terministe et d'un mĂ©canisme physique rĂ©ellement non-dĂ©terministe appelĂ© source d'entropie. Si les diffĂ©rents traitements cryptographiques et leurs propriĂ©tĂ©s sont abondamment dĂ©crits dans la littĂ©rature, le processus de collecte d'entropie lui-mĂȘme est assez mal connu. Ce rapport, aprĂšs une prĂ©sentation des diffĂ©rentes approches de gĂ©nĂ©ration de nombres alĂ©atoires, dĂ©taille l'architecture du gĂ©nĂ©rateur de Linux, puis les diffĂ©rentes expĂ©riences que nous avons menĂ©es pour observer les transferts d'entropie. Nos rĂ©sultats montrent entre autre, que la plus grande source d'alĂ©a est le comportement du disque dur, et que la majoritĂ© des nombres alĂ©atoires produits dans le systĂšme sont consommĂ©s par le noyau lui-mĂȘme

    MPU-based incremental checkpointing for transiently-powered systems

    Get PDF
    International audienc

    Sytare: Persistence de l'état des périphériques pour les systÚmes à alimentation intermittente

    Get PDF
    National audienceLes systĂšmes dits Ă  alimentation intermittente sont de petits systĂšmes embarquĂ©s rĂ©cupĂ©rant l'Ă©nergie dans leur environnement. À cause de contraintes de taille et de coĂ»t, ils subissent de frĂ©quentes coupures de courant, mais sont nĂ©anmoins capables d'exĂ©cuter un programme logiciel, en sauvegardant les donnĂ©es nĂ©cessaires au calcul dans une mĂ©moire non-volatile. Cet article prĂ©sente une technique permettant Ă  ces systĂšmes d'utiliser des pĂ©riphĂ©riques non triviaux tels qu'un convertisseur analogique-numĂ©rique, une interface sĂ©rie ou une radio
    corecore